今天要介紹的是轉換到下一個 view 的方式,之前不了解的時候,就遇過重複使用到兩個方法,畫面跳轉兩次的情形,藉由這次把看過學過的方式整理一下,就列出了三種方法都可以由前一個視圖轉到下一個視圖。
此篇將介紹三種方法,由 view 1 進入到 view 2
這三種方法沒有誰優誰劣,只是在不同狀況下考慮能使用的方式會不太一樣,本篇範例都利用按下按鈕的方式作切換,例如:如果是使用 TableView 不同的 cell 需要切換到不同的頁面,則需要使用程式碼控制,第一個簡單又直覺的方式就顯得不靈活了。
第一種方式很簡單且直覺,在第一個頁面中名為 Next View 的 UIButton 按住 control 直接拖拉到第二頁就會出現 Action Segue 的選項,則選著第一個 show,則完成。
第二種方式是先建立 Segue,並為 Segue 輸入專屬的 Identifier,接著在第一個 ViewControll 中建立 UIButton 的 Action,利用方法 performSegue(withIdentifier:, sender:)
完成頁面轉換。
Step 1: 建立由第一個 view 到第二個 view 的 Segue
Step 2: 為 Segue 命名
Step 3: 建立 UIButton 的 Action
@IBAction func gotoSecondView(_ sender: UIButton) {
performSegue(withIdentifier: "gotoSecondViewSegue", sender: nil)
}
此方法需要先為目的地 Storyboard ID 給予名稱,接著再利用程式碼,使按鈕按下時切換到第二個畫面。
Step 1: 給予目的地 Storyboard ID 名稱
Step 2: 有兩種方式的寫法都可以執行到目的地
方法一:
@IBAction func gotoSecondView(_ sender: UIButton) {
let vc = storyboard?.instantiateViewController(withIdentifier: "SecondViewController") as! SecondViewController
present(vc, animated: true, completion: nil)
}
方法二:
@IBAction func gotoSecondView(_ sender: UIButton) {
let vc = storyboard?.instantiateViewController(withIdentifier: "SecondViewController") as! SecondViewController
show(vc, sender: nil)
}